home *** CD-ROM | disk | FTP | other *** search
/ Internet Surfer: Getting Started / Internet Surfer - Getting Started (Wayzata Technology)(7231)(1995).bin / pc / textfile / mac_faqs / dsp_faq / part1 next >
Internet Message Format  |  1995-01-27  |  52KB

  1. Xref: bloom-picayune.mit.edu comp.dsp:4662 news.answers:4079
  2. Path: bloom-picayune.mit.edu!snorkelwacker.mit.edu!usc!zaphod.mps.ohio-state.edu!saimiri.primate.wisc.edu!ames!agate!agate!usenet
  3. From: phil@ohm.Berkeley.EDU (Phil Lapsley)
  4. Newsgroups: comp.dsp,news.answers
  5. Subject: comp.dsp FAQ [1 of 2]
  6. Supersedes: <dspone_720140326@ohm.berkeley.edu>
  7. Followup-To: poster
  8. Date: 17 Nov 1992 05:23:42 GMT
  9. Organization: University of California at Berkeley
  10. Lines: 1237
  11. Approved: news-answers-request@MIT.Edu
  12. Distribution: world
  13. Message-ID: <dspone_721977817@ohm.berkeley.edu>
  14. NNTP-Posting-Host: tukey.berkeley.edu
  15. Summary: This is a periodic posting to comp.dsp that gives information
  16.     on frequently asked questions asked in this newsgroup.
  17.  
  18. Archive-name: dsp-faq/part1
  19. Last-modified: Mon Nov 16 1992
  20. Version: 0.7
  21.  
  22. Welcome to the comp.dsp FAQ.  We are seeking information on all topics,
  23. from the best layout (e.g., should chips and prototype boards be
  24. another FAQ?) to a good annotated list of DSP articles and reference
  25. books.  Please email your suggestions to comp-dsp-faq@ohm.Berkeley.EDU.
  26. Meta-comments are all in curly braces {like this}.  Acknowledgements to
  27. people responsible for articles and/or bits of information are in
  28. square brackets, [like so].
  29.  
  30. You can ftp the very latest version of this FAQ from: evans.ee.adfa.oz.au
  31. (131.236.30.24) in pub/dsp/dsp-faq.help, or from copernicus.Berkeley.EDU
  32. in dsp-faq.help.*.
  33.  
  34. We are most grateful to the following contributors who helped out with
  35. this version of the FAQ:
  36.  
  37. William Alves        alves@calvin.usc.edu
  38. Steve Clift        clift@ml.csiro.au
  39. Dan Frankowski        dfrankow@cs.umn.edu
  40. Ed Hall            edhall@rand.org
  41. Quinn Jensen        jensenq@qcj.icon.com
  42. Greg Koker        greg.koker@analog.com
  43. Juhana Kouhia        jk87377@cc.tut.fi
  44. Tony Richardson        amr@mpl.ucsd.edu
  45. Paul Simoneau        pas1@kepler.unh.edu
  46. Witold Waldman        witold@hotblk.aed.dsto.gov.au
  47.  
  48. and the following folks who helped out with previous versions:
  49.  
  50. Joe Campbell        jpcampb@afterlife.ncsc.mil
  51. Tim Channon        tchannon@black.demon.co.uk
  52. Malachy Devlin        madmal@spd.eee.strathclyde.ac.uk
  53. Brian Evans        evans@markov.eedsp.gatech.edu
  54. John Fisher        johnf@dsp.sps.mot.com
  55. Dan Frankowski        dfrankow@cs.umn.edu
  56. Maurice Givens        maury@tellabs.com
  57. Ed Hall            edhall@rand.org
  58. Vince Herried        vjh21@cas.org
  59. Eric Jacobsen        ericj@hwcae.honeywell.com
  60. Pete Janzow        pjanzow@prenhall.com
  61. Richard Kim        richard@math.mit.edu
  62. Gints Klimanis        gints@roadkill.esd.sgi.com
  63. Greg Koker        greg.koker@analog.com
  64. John Lazzaro        lazzaro@boom.CS.Berkeley.EDU 
  65. Paul Russell        paulr@syma.sussex.ac.uk
  66. Stanley Sasaki        stans@tekig7.pen.tek.com
  67. Bill Schottstaedt    bil@ccrma.stanford.edu
  68. Greg Smart        rcogs@citri.edu.au
  69. Andrew Ukrainec        ukrainec@nimios.Eng.McMaster.CA
  70. Ronnin Yee        ronnin.yee@analog.com
  71.  
  72. Get your name here - contribute something!  (If you don't want your
  73. email address listed in your contribution, please indicate so.)
  74.  
  75. Phil Lapsley        phil@ohm.Berkeley.EDU    (temporary FAQ maintainer)
  76. Bradley Hards        hards@ee.adfa.oz.au    (original FAQ maintainer)
  77.  
  78. =============================================================================
  79.  
  80. 0. What is comp.dsp?
  81.  
  82. 1. General DSP.
  83.    1.1 DSP book and article references.
  84.        1.1.1 Bibles of DSP.
  85.        1.1.2 Adaptive signal processing.
  86.        1.1.3 Array signal processing.
  87.        1.1.4 Windowing.
  88.        1.1.5 Digital audio effects processing.
  89.    1.2 Where can I get free software for general DSP?
  90.        1.2.1 What is Gabriel?  Where can I get it?
  91.        1.2.2 What is Ptolemy?  Where can I get it?
  92.        1.2.3 What is Khoros?  Where can I get it?
  93.        1.2.4 What are DSP Tutorials?  Where can I get them?
  94.        1.2.5 What are some DSP extensions to MATLAB?  Where can I get them?
  95.        1.2.6 What is the Signal Processing Package for Mathematica?
  96.              Where can I get it?
  97.        1.2.7 What is the Controls System Package for Mathematica?
  98.              Where can I get it?
  99.        1.2.8 What are some other DSP Notebooks for Mathematica?
  100.        1.2.9 What is the Linear Systems Toolbox for Maple?  Where can I get it?
  101.        1.2.10 Where can I get text to speech conversion software?
  102.        1.2.11 Where can I get filter design software?
  103.  
  104. 2. Algorithms and standards.
  105.    2.1 Where can I get some algorithms for DSP?
  106.    2.2 What is CELP and LPC?  Where can I get source for them?
  107.    2.3 What is ADPCM?  Where can I get source for it?
  108.    2.4 How does pitch perception work, and how do I implement it?
  109.    2.5 What standards exist for digital audio?  What is AES/EBU?
  110.        What is S/PDIF?
  111.    2.6 What is mu-law encoding?  Where can I get source for it?
  112.    2.7 How can I do CD <-> DAT sample rate conversion?
  113.  
  114. 3. Programmable DSP chips and their software.
  115.    3.1 What are some current, popular programmable DSP chips?
  116.    3.2 Software for Motorola DSPs.
  117.     3.2.1 Where can I get a free assembler for the Motorola DSP56000?
  118.     3.2.2 Where can I get a free C compiler for the Motorola DSP56000?
  119.     3.2.3 Where can I get algorithms or libraries for Motorola DSPs?
  120.           What is the number for the Motorola DSP BBS?
  121.     3.2.4 Where can I get NeXT-compatible Motorola DSP56001 code?
  122.    3.3 Software for Texas Instruments DSPs.
  123.     3.3.1 Where can I get algorithms or libraries for TI DSPs?
  124.                  What is the number for the TI DSP BBS?
  125.     3.3.2 Where can I get a free C compiler for the TMS320C30?
  126.    3.4 Software for Analog Devices DSPs.
  127.         3.4.1 Where can I get algorithms or libraries for AD DSPs?
  128.           What is the number for the Analog Devices DSP BBS?
  129.  
  130. 4. Hardware.
  131.     4.1 DSP development boards.
  132.     4.1.1 IBM PC.
  133.     4.1.2 Mac Nubus.
  134.     4.1.3 SBus.
  135.     4.1.4 VMEbus.
  136.     4.1.5 Next bus.
  137.     4.1.6 SCSI bus.
  138.     4.1.7 Standalone.
  139.     4.2 Who makes AES/EBU chips?
  140.  
  141. 5. List of manufacturers, addresses, and telephone numbers.
  142.  
  143. To search for a particular question within a text editor, look for the
  144. pattern "Q#.##:", e.g., "Q1.2:".
  145.  
  146. =============================================================================
  147.  
  148. Q0: What is comp.dsp?
  149.  
  150. Comp.dsp is a worldwide UseNet news group that is used to discuss
  151. various aspects of digital signal processing.  It is unmoderated,
  152. though we try to keep the signal to noise ratio up :-).  If you need to
  153. ask a question that isn't in the FAQ, and can't figure out how to post,
  154. consult news.newusers.questions.  Other relevant news groups are
  155. comp.compression and sci.image.processing.
  156.  
  157. =============================================================================
  158.  
  159. 1. General DSP.
  160.  
  161. This section deals with general DSP, that is, DSP books, algorithms,
  162. and packages that are not related to a particular manufacturer's DSP chip.
  163.  
  164. =========================================================================
  165.  
  166. Q1.1: Summary of DSP books and significant research articles.
  167.  
  168. Q1.1.1: Bibles of DSP.
  169.  
  170. A.V. Oppenheim and R.W. Schafer, "Digital Signal Processing",
  171. Prentice-Hall, Inc., Englewood Cliffs, N.J., 1975.
  172.  
  173. A.V. Oppenheim and R.W. Schafer, "Discrete-Time Signal Processing"
  174. Prentice Hall, Englewood Cliffs, New Jersey 07632, 1989. ISBN 0-13-216292-X
  175. This is an updated version of the original, with some old material deleted
  176. and lots of new material added.
  177.  
  178. L.R. Rabiner & R.W. Schafer, "Digital Processing of Speech Signals",
  179. Prentice Hall, 1978, ISBN 0-13-213603-1.
  180.  
  181. R. E. Crochiere & L. R. Rabiner, "Multirate Digital Signal Processing",
  182. Prentice-Hall, 1983, ISBN 0136051626.
  183. This book is the only real reference for filter banks and multirate
  184. systems, as opposed to being a tutorial.
  185.  
  186. Thomas Parsons, "Voice and Speech Processing", McGraw-Hill, 1987,
  187. ISBN 0-07-048541-0.
  188. Addresses the cocktail party effect, as well as other material.
  189. [Maurice Givens, maury@tellabs.com]
  190.  
  191. --------------------------------------------------
  192.  
  193. Q1.1.2: Adaptive signal processing.
  194.  
  195. S. Haykin, "Adaptive Filter Theory", 2nd Ed., Prentice Hall,
  196. Englewood Cliffs, NJ, 1991.
  197.  
  198. B. Widrow and S.D. Stearns, "Adaptive Signal Processing", 
  199. Prentice-Hall, Inc., Englewood Cliffs, N.J., 1985.
  200.  
  201. --------------------------------------------------
  202.  
  203. Q1.1.3: Array signal processing.
  204.  
  205. J.E. Hudson, "Adaptive Array Principles", IEE London and New York,
  206. Peter Peregrinus Ltd. Stevenage, U.K., and New York, 1981.
  207.  
  208. R.A. Monzingo and T.W. Miller, "Introduction to Adaptive Arrays"
  209. John Wiley and Sons, New York, 1980.
  210.  
  211. S. Haykin, J.H. Justice, N.L. Owsley, J.L. Yen, and A.C. Kak
  212. "Array Signal Processing", Prentice-Hall, Inc., Englewood Cliffs, N.J., 1985.
  213.  
  214. R.T. Compton, Jr., "Adaptive Antennas, Concepts and Performance",
  215. Prentice-Hall, 1988, ISBN 0-13-004151-3.
  216.  
  217. --------------------------------------------------
  218.  
  219. Q1.1.4: Windowing articles.
  220.  
  221. F. J. Harris, "On the Use of Windows for Harmonic Analysis with the DFT",
  222. IEEE Proceedings, January 1978, pp. 51-83.
  223. Perhaps the classic overview paper for discrete-time windows.  It discusses
  224. some 15 different classes of windows including their spectral responses and
  225. the reasons for their development.  [Brian Evans, evans@eedsp.gatech.edu]
  226.  
  227. Nezih C. Geckinli & Davras Yavuz, "Some Novel Windows and a Concise Tutorial
  228. Comparison of Window Families", IEEE Transactions on Acoustics, Speech,
  229. and Signal Processing, Vol. ASSP-26, No. 6, December 1978.
  230. [Bob Beauchaine, bobb@vice.ico.tek.com]
  231.  
  232. Lineu C. Barbosa, "A Maximum-Energy-Concentration Spectral Window,"
  233. IBM J. Res. Develop., Vol. 30, No. 3, May 1986, p. 321-325.
  234. An elegant method for designing a time-discrete solution for
  235. realization of a spectral window which is ideal from an energy
  236. concentration viewpoint.  This window is one that concentrates the
  237. maximum amount of energy in a specified bandwidth and hence provides
  238. optimal spectral resolution.  Unlike the Kaiser window, this window is
  239. a discrete-time realization having the same objectives as the
  240. continuous-time prolate spheroidal function; at the expense of not
  241. having a closed form solution. [Joe Campbell, jpcampb@afterlife.ncsc.mil]
  242.  
  243. --------------------------------------------------
  244.  
  245. Q1.1.5: Digital Audio Effects Processing.
  246.  
  247. Books (in no particular order, sorry):
  248.  
  249. Hal Chamberlin, Musical Applications of Microprocessors, 2nd Ed.,
  250. Hayden Book Company, 1985.
  251.  
  252. Barry Blesser and J. Kates. "Digital Processing in Audio Sinals." In A. V.
  253. Oppenheim, ed. Applications of Digital Signal Processing. Englewood Cliffs, 
  254. NJ: Prentice-Hall, 1978.
  255.  
  256. Digital Signal Processing Committee of IEEE Acoustics, Speech, and Signal
  257. Processing Society, ed. Programs for Digital Signal Processing. New York:
  258. IEEE Press, 1979.
  259.  
  260. John Strawn, ed., "Digital Audio Signal Processing: An Anthology.", Los Altos,
  261. CA: W. Kaufmann, 1985.   [Contains Moorer J.A. "About This Reverb..."
  262. and contains an article which gives a code for Phase Vocoder -- great
  263. tool for EQ, for Pitchshifter and more --Juhana Kouhia]
  264.  
  265. Charles Dodge and Thomas A. Jerse. Computer Music: Synthesis, Composition,
  266. and Performance. New York: Schirmer Books, 1985.
  267.  
  268. F. Richard Moore, "Elements of Computer Music", Englewood Cliffs, NJ:
  269. Prentice-Hall, 1990.  ISBN: 0-13252-552-6 [Recommended.  --Juhana Kouhia]
  270.  
  271. Curtis Roads and John Strawn, ed., "The Foundations of Computer Music",
  272. Cambridge, MA: MIT Press, 1985.  [Contains article on analysis/synthesis
  273. by Strawn, recommended; also an another article maybe by J.A. Moorer
  274. -- Juhana Kouhia]
  275.  
  276. John Strawn, ed., "Digital Audio Signal Processing", 283 pages,
  277. $34.95, ISBN 0-86576-082-9, pub: A-R Editions.  Contents:
  278.  
  279.     1. Introduction to the mathematics of DSP (F. Richard Moore)
  280.        [Not a bad little text]
  281.  
  282.     2. Introduction to digital filter theory (Julius O. Smith)
  283.        [Not a bad little text, either]
  284.  
  285.     3. Spiral Synthesis (Tracy Lind Petersen)
  286.        [first published account of a new synthesis technique]
  287.  
  288.     4. Signal processing aspects of computer music (J. A. Moorer)
  289.        [James Moorer's classic article--discusses many synthesis
  290.        techniques.  Reverb algorithms.  More than 6 pages of refs]
  291.  
  292.     5. An introduction to the phase vocoder (J. W. Gordon, J. Strawn)
  293.        [Includes source code for a phase vocoder--a powerful method
  294.        for synthesis, pitch shifting, time scale modification, etc.]
  295.     [Comments by Quinn Jensen].
  296.        
  297. Curtis Road, ed., "Composers and the Computer", 201 pages,
  298. $27.95, ISBN 0-86576-085-3, pub: A-R Editions.
  299.  
  300. John Strawn, ed., "Digital Audio Engineering", 144 pages,
  301. $29.95, ISBN 0-86576-087-X pub: A-R Editions.
  302.  
  303. Deta S. Davis, "Computer Applications in Music: A Bibliography", 537 pages,
  304. $49.95, ISBN 0-89579-225-7, pub: A-R Editions.
  305.  
  306. Ken C. Pohlmann, "The Compact Disc:  A Handbook of Theory and Use",
  307. 288 pages, $45.95 (cloth) ISBN 0-89579-234-6, $29.95 (paper)
  308. ISBN 0-89579-228-1, pub: A-R Editions.
  309.  
  310. Forthcoming books:
  311.  
  312. Curtis Roads, "A Computer Music History:  Musical Automation 
  313. from Antiquity to the Computer Age"
  314.  
  315. Joseph Rothstein, "MIDI:  A Comprehensive Introduction"
  316.  
  317. David Cope, "Computer Analysis of Musical Style"
  318.  
  319. Dexter Morrill and Rick Taube, "A Little Book of Computer Music
  320. Instruments"
  321.  
  322. Articles:
  323.  
  324. James A. Moorer, "About This Reverberation Business", Computer Music Journal
  325. 3, 20 (1979): 13-28. (Also in Foundations of CM below).
  326. [Ok article, but you have to know basic DSP operations.  --Juhana Kouhia]
  327.  
  328. Check more articles from Journal of the Audio Engineering Society
  329. (JAES), for example more articles by Strawn.
  330.  
  331. Note: books published by A-R editions can be ordered from:
  332.  
  333.     A-R Editions
  334.     801 Deming Way
  335.     Madison, Wisconsin 53717
  336.     608-836-9000 (They accept VISA orders)
  337.  
  338. [The above is largely from Quinn Jensen, jensenq@qcj.icon.com;
  339. Juhana Kouhia, jk87377@cc.tut.fi; William Alves, alves@calvin.usc.edu;
  340. and Paul A Simoneau, pas1@kepler.unh.edu]
  341.  
  342. =========================================================================
  343.  
  344. Q1.2: Where can I get free software for general DSP?
  345.  
  346. The packages listed below are mostly for general purpose DSP, that is,
  347. DSP that is not specific to a particular programmable DSP chip.  See
  348. the later sections in the FAQ for software relevant to a particular
  349. programmable DSP chip.
  350.  
  351. According to Brian Evans: "There was an entire session on this subject
  352. [free DSP software] at ICASSP '92, chaired by Dr. Sally Wood and
  353. Dr. James McClellan.  It appears in Volume 4 of the Proceedings, pages
  354. 73-112.  There will be another such session at ICASSP '93." [Brian Evans,
  355. evans@eedsp.gatech.edu]  Much of the information below is from Brian's mail.
  356.  
  357. --------------------------------------------------
  358.  
  359. Q1.2.1: What is Gabriel?  Where can I get it?
  360.  
  361. Package: Gabriel
  362.  
  363. Description:
  364. Hierarchical block diagram environment for prototyping signal processing
  365. systems on single or multiple processors.  Algorithms expressed in block
  366. diagram form can be simulated, and assembly code can also be generated for
  367. the Motorola DSP56001 and DSP96002.  Gabriel has almost been obsoleted by
  368. Ptolemy, below.
  369.  
  370. Platforms: sun 3, sun 4, X windows.  Written in Lisp (lisp compiler supplied).
  371.  
  372. Contact: Alan Kamas, aok@ohm.berkeley.edu.
  373.  
  374. To obtain:
  375. Anonymous ftp to copernicus.berkeley.edu, and retrieve gabriel-license.shar.
  376. This is a shar file of licenses that you must sign and mail back to us (the
  377. old-fashioned way) before we can give you the source.  Then we can tell you
  378. the password for an account that will allow you to FTP Gabriel.
  379. --------------------------------------------------
  380.  
  381. Q1.2.2: What is Ptolemy?  Where can I get it?
  382.  
  383. Package: Ptolemy
  384.  
  385. Description:
  386. Hierarchical, heterogeneous block diagram DSP design environment.  Supports
  387. simulation (dataflow and discrete event), code generation, and hardware
  388. modeling.  All the features of Gabriel, but much cleaner and better designed.
  389.  
  390. Platforms: sun 3, sun 4, DECstation, HP, VAX.  X windows.  Written in C++.
  391.  
  392. Contact: Alan Kamas, aok@ohm.berkeley.edu.
  393.  
  394. To obtain:
  395. Anonymous ftp to forney.berkeley.edu, and retrieve ptolemy-license.shar.
  396. This is a shar file of licenses that you must sign and mail back to us (the
  397. old-fashioned way) before we can give you the source.  Then we can tell you
  398. the password for an account that will allow you to FTP Ptolemy.
  399. --------------------------------------------------
  400.  
  401. Q1.2.3: What is Khoros?  Where can I get it?
  402.  
  403. Package: Khoros
  404.  
  405. Description:
  406. Block diagram simulator for image and video processing.  1-D signal processing
  407. is also supported.  See the UseNet group comp.soft-sys.khoros.
  408.  
  409. Platforms: sun 3, sun 4, others?  X windows.  Written in C.
  410.  
  411. To obtain:
  412. Anonymous ftp to pprg.eece.unm.edu, cd /pub/khoros/release, get install.ftp.
  413. --------------------------------------------------
  414.  
  415. Q1.2.4: What are DSP Tutorials?  Where can I get them?
  416.  
  417. Package: DSP Tutorials
  418.  
  419. Description: Computer aided instruction.
  420.  
  421. Platforms: suns under SunView.
  422.  
  423. Contact: Dr. Sally Wood, Electrical Engineering Department, Santa Clara
  424. University, Santa Clara, CA 95053.
  425. --------------------------------------------------
  426.  
  427. Q1.2.5: What are some DSP extensions to MATLAB?  Where can I get them?
  428.  
  429. Package: MATLAB user's group public domain extensions to MATLAB
  430.  
  431. Description:
  432.  
  433.     The MATLAB Digest is issued at irregular intervals based on the  number
  434.     of  questions  and  software  items  contributed  by  users.   To  make
  435.     submissions  to the digest, please send  to hwilson@ua1vm.ua.edu with a
  436.     subject: "DIG" and description.
  437.  
  438.     For  the  Pacific,   try  netlib@draci.cs.uow.edu.au  located   at  the
  439.     University of Wollongong, NSW, Australia.
  440.  
  441.     A plethora of toolboxes are available at FTP site: research.att.com
  442.     (use netlib for the username)
  443.  
  444.     General index for the MATLAB User Group software library
  445.     ----------------------------------------------------------
  446.     Currently there are the following subdirectories:
  447.     approximation      approximation theory
  448.     archive            old MATLAB user group digests
  449.     control            control theory
  450.     dataanalysis       data analysis and statistics
  451.     graphics           graphics programs
  452.     integration        numerical integration
  453.     linearalgebra      linear algebra utilities
  454.     misc               miscellaneous
  455.     ode                ordinary differential equations
  456.     optimization       as the name says
  457.     pde                partial differential equations
  458.     rootfinding        zero-finding routines
  459.     specialfunctions   special functions
  460.     teaching           for classroom use
  461.     tools              miscellaneous tools
  462.  
  463.     In order to get an index for a subdirectory (tools, say)
  464.     send the message
  465.         send index from MATLAB/tools
  466.     to netlib@ornl.gov.
  467.  
  468.     In order to get some code, (unbundle in the `tools'
  469.     directory, say), send the message
  470.         send unbundle from MATLAB/tools
  471.     to netlib@ornl.gov.
  472.  
  473.     FOR  STUDENTS: Prentice Hall has published  a student edition of matlab
  474.     which contains a book and  set of disks for PCs and Macs.  The software
  475.     is limited only in matrix size (32 x 32 matrix;  1024 elements) and  in
  476.     its ability  to import or call  C or Fortran  subroutines.  On the plus
  477.     side, it is able to run without a coprocessor (it will use one if it is
  478.     present) and it includes a subset of the Signal Processing and Controls
  479.     Toolboxes, The Signals and  Systems Toolbox,  which  provides for added
  480.     functionality. Book only (about US$30): ISBN = 0138560064; Book + disk:
  481.     (about US$50 ISBN=0-13-855974-0 for 3.5" or ISBN=0-13-855982-1 for 5.25
  482.     Macintosh version:  ISBN=0-13-855990-2. There will be related books out
  483.     by mid to late 1993 :  Computer Aided Signal Processing with MATLAB, by
  484.     Burrus, Oppenheim, McClellan, Parks, Schafer, and Schussler; and Signal
  485.     Processing : A Computer  Approach, by Etter. More books in this  MATLAB
  486.     Curriculum Series are planned. For general info: matlab@prenhall.com
  487.  
  488.     [From the Matlab Users Group (Editor, hwilson@ua1vm.ua.edu)]
  489. --------------------------------------------------
  490.  
  491. Q1.2.6: What are the Signal Processing Packages for Mathematica?
  492.         Where can I get them?
  493.  
  494. Package: Signal Processing Pacakages (SPP) and Notebooks.
  495.  
  496. Description:
  497.  
  498.          Public domain  extensions  to  Mathematica.   Enables the symbolic 
  499.     manipulation of signal processing expressions:  1-D discrete/continuous
  500.     convolutions and 1-D/m-D linear transforms  (Laplace, Fourier, z, DTFT,
  501.     and DFT).   For  linear  transforms, you can specify your own transform
  502.     pairs and see the intermediate computations. Great for showing students
  503.     how to take transforms, or for deriving input-output relationships in a
  504.     transform  domain.   Additional abilities include analog filter design,
  505.     solving DE's using transforms, converting signal processing expressions
  506.     to their equivalent TeX forms, and number theoretic operations  (Bezout
  507.     numbers, Smith Form decompositions, and matrix factors).   Accompanying
  508.     SPP  are  tutorial notebooks on analog filter design, Fourier analysis,
  509.     piecewise convolution,  and  the  z-transform (includes a discussion of
  510.     fundamentals  of  digital  filter  design).  These Notebooks illustrate
  511.     difficult concepts (such as  the  flip-and-slide  view  of convolution)
  512.     through animation.  A Notebook reader is available in the public domain
  513.     for Macintosh computers (a BinHexed version is on the ftp site).
  514.  
  515.     FOR STUDENTS:   A student version of Mathematica is available for $175.
  516.     The price includes a copy of the reference manual.  The only drawbacks
  517.     to the student version are that the floating point coprocessor is dis-
  518.     abled and that upgrades cannot be ordered.
  519.  
  520. Contact: Brian Evans, evans@eedsp.gatech.edu.
  521.  
  522. To obtain: anonymous ftp to gauss.eedsp.gatech.edu (130.207.226.24).
  523. (available in UNIX, Mac, and MS-DOS archive formats).
  524.  
  525. --------------------------------------------------
  526.  
  527. Q1.2.7: What is the Control Systems Analysis Packages for Mathematica?
  528.         Where can I get them?
  529.  
  530. Package: Control Systems Analysis Package (COSYPAK) and Notebooks
  531.  
  532. Description: Public domain extension to Mathematica.  Classical and
  533. state-space control analysis and design methods.  The Notebooks
  534. supplement the material in the textbook "Modern Controls Theory" by
  535. Ogata.  Largely based on the Signal Processing Packages (SPP, see above).
  536.  
  537. Contact: Dr. Sreenath, sree@veda.esys.cwru.edu.
  538.  
  539. To obtain: anonymous ftp veda.esys.cwru.edu (129.22.40.9).
  540. --------------------------------------------------
  541.  
  542. Q1.2.8: What are some other Mathematica DSP Notebooks?
  543.  
  544. The following Mathematica notebooks can be ftped from ccrma-ftp.stanford.edu:
  545.  
  546. pub/DSP/GenHamming.ma.Z         Generalized Hamming windows
  547. pub/DSP/Kaiser.ma.Z             The Kaiser window
  548. pub/DSP/WinFlt.ma.Z             Digital filter design by the "window method"
  549.  
  550. (There are other DSP related items in pub/DSP on ccrma-ftp; see other
  551. sections of this FAQ for details).
  552. --------------------------------------------------
  553.  
  554. Q1.2.9: What is the Linear Systems Toolbox for Maple?
  555.         Where can I get it?
  556.  
  557. Package: Linear systems toolbox for Maple.
  558.  
  559. Description: Public domain extension to Maple.
  560.  
  561. Contact: Tony Richardson, amr@mpl.ucsd.edu.
  562.  
  563. To obtain: anonymous ftp to cameron.egr.duke.edu,
  564. file pub/maple/linsys1.2.tar.Z.
  565. --------------------------------------------------
  566.  
  567. Q1.2.10: Where can I get text to speech conversion software?
  568.  
  569. Free (but not public domain) text to speech conversion software is
  570. available via anonymous ftp from wilma.cs.brown.edu in the pub directory
  571. as speak.tar.Z.  It will compile and run on a SPARC's built-in audio
  572. after modifying speak.c with the path of your libaudio.h (e.g.,
  573. /usr/demo/SOUND/libaudio.h).  It's a simple phoneme concatenation
  574. system with commensurate synthesized speech quality (a directory of
  575. phoneme audio files is included).  [Joe Campbell, jpcampb@afterlife.ncsc.mil]
  576. --------------------------------------------------
  577.  
  578. Q1.2.11: Where can I get filter design software?
  579.  
  580. One source is the following: in the August 92 issue of IEEE
  581. Transactions on Signal Processing there is a paper entitled "METEOR: A
  582. Constraint-Based FIR Filter Design Program" by Kenneth Steiglitz,
  583. Thomas W. Parks and James F. Kaiser.  They describe an FIR design
  584. program which allows specification of the target frequency response
  585. characteristics in a fairly generalised and flexible way.  As well as
  586. designing filters, the program can optimise filter lengths and push
  587. band limits.
  588.  
  589. The paper contains a footnote which says "Pascal and C versions of
  590. source code are available to  anonymous ftp at princeton.edu in the
  591. directory /pub as meteor.p, form.p, meteor.c and form.c".
  592.  
  593. True, they are.  They appear to work.  The Pascal versions have been
  594. put through p2c to get the C versions; all the needed Pascal library
  595. stuff is included in the C versions and they built error-free out of
  596. the box for me on an SGI machine.
  597.  
  598. One catch is, there is no manual - you need the paper to know how to drive
  599. the programs.
  600.  
  601. [Steve Clift, clift@ml.csiro.au]
  602.  
  603. { There are other free filter design programs floating around out there,
  604.   such as optfir/wfir.  Does anyone know of ftp sites? }
  605.  
  606. =============================================================================
  607.  
  608. 2. Algorithms and standards.
  609.  
  610. This section deals with DSP algorithms and related standards.
  611.  
  612. =======================================================================
  613. Q2.1: Where can I get some algorithms for general DSP?
  614.  
  615. The following archives contain things such as matrix  operations, FFT's and
  616. generally useful things like that, as opposed to complete applications:
  617.  
  618. (1) host ux1.cso.uiuc.edu - log in as anonymous, get the file math/README.
  619.     It summarises the contents of the archive.
  620.  
  621. (2) Netlib, which serves some of this software via email. Try mail to
  622.     netlib@ORNL.GOV with "send help" in the subject field.
  623.     For Europe: 
  624.         Internet:       netlib@nac.no
  625.         EARN/BITNET:    netlib%nac.no@norunix.bitnet
  626.         X.400:          s=netlib; o=nac; c=no;
  627.         EUNET/uucp:     nac!netlib
  628.     For the Pacific, try    
  629.         netlib@draci.cs.uow.edu.au
  630.      For background about netlib, see Jack J. Dongarra and Eric Grosse,
  631.      "Distribution of Mathematical Software Via Electronic Mail,"
  632.      Comm. ACM (1987) 30,403--407.
  633.      
  634.      A similar collection of statistical software is available from
  635.            statlib@temper.stat.cmu.edu.
  636.  
  637.      The symbolic algebra system REDUCE is supported by
  638.           reduce-netlib@rand.org.
  639.  
  640. (3) The Naval Surface Warfare Center has a library of mathematical
  641.     Fortran subroutines that may be of use.  From the report itself:
  642.  
  643.     NSWC Library of Mathematical Subroutines
  644.     Report No.: NSWC TR 90-21, January 1990
  645.     by Alfred H. Morris, Jr.
  646.     
  647.     Naval Surface Warfare Center (E43)
  648.     Dahlgren, VA 22448-5000
  649.     U.S.A.
  650.     
  651.     Distribution: Approved for public release; distribution unlimited.
  652.     
  653.     Abstract:
  654.     
  655.     The NSWC library is a library of general-purpose Fortran subroutines
  656.     that provide a basic computational capability in a variety of
  657.     mathematical activities. Emphasis has been placed on the transportability
  658.     of the codes. Subroutines are available in the following areas:
  659.     Elementary Operations, Geometry, Special Functions, Polynomials, Vectors,
  660.     Matrices, Large Dense Systems of Linear Equations, Banded Matrices,
  661.     Sparse Matrices, Eigenvalues and Eigenvectors, l1 Solution of Linear
  662.     Equations, Least-Squares Solution of Linear Equations, Optimization,
  663.     Transforms, Approximation of Functions, Curve Fitting, Surface Fitting,
  664.     Manifold Fitting, Numerical Integration, Integral Equations, Ordinary
  665.     Differential Equations, Partial Differential Equations
  666.  
  667.     [Witold Waldman, witold@hotblk.aed.dsto.gov.au]
  668.  
  669.     {  Does anyone know an FTP site for this library? }
  670.  
  671. If you don't know where to find what you're after, try archie.
  672.  
  673. =======================================================================
  674.  
  675. Q2.2: What are CELP and LPC?  Where can I get the source for CELP and LPC?
  676.  
  677. CELP stands for "code excited linear prediction".  LPC stands for
  678. "linear predictive coding".  They are compression algorithms used for
  679. low bit rate (2400 and 4800 bps) speech coding.
  680.  
  681. The U.S. DoD's Federal Standard 1016 (FS 1016) based 4800 bps code
  682. excited linear prediction voice coder version 3.2 (CELP 3.2) Fortran
  683. and C simulation source codes are available for worldwide distribution
  684. at no charge (on DOS diskettes, but configured to compile on Sun SPARC
  685. stations) from:
  686.  
  687.     Bob Fenichel
  688.     National Communications System
  689.     Washington, D.C.  20305
  690.     1-703-692-2124
  691.     1-703-746-4960 (fax)
  692.  
  693. Example input and processed speech files, a technical information bulletin,
  694. and the official standard "Federal Standard 1016, Telecommunications:
  695. Analog to Digital Conversion of Radio Voice by 4,800 bit/second Code
  696. Excited Linear Prediction (CELP)" are included at no charge.
  697.  
  698. Unfortunately, a document that is a vital part of the CELP release package
  699. is not available in electronic form.  Anyone serious interested in CELP
  700. should obtain the document:
  701.  
  702.     Details to Assist in Implementation of Federal Standard 1016 CELP.
  703.     National Communications System, Office of Technology & Standards, 1992.
  704.     Technical Information Bulletin 92-1.
  705.  
  706. It is available from the above address.
  707.  
  708. The 4800 bps CELP code is available via anonymous FTP on
  709. furmint.nectar.cs.cmu.edu (128.2.209.1111) in celp.audio.compression.
  710. It is unsupported, and has not been compiled or tested.  This version
  711. takes a lot of CPU time.  It is about 15 times slower than real-time.
  712. That is, to code 1 minute of speech takes about 15 minutes.  It has
  713. directions on how to reduce the codebook search to make it faster, but
  714. they are only for the speech coding expert.
  715.  
  716. The following article describes the FS 1016 4.8-kbps CELP coder:
  717.  
  718. Campbell, Joseph P. Jr., Thomas E. Tremain and Vanoy C. Welch, "The
  719. Proposed Federal Standard 1016 4800 bps Voice Coder:  CELP," Speech
  720. Technology Magazine, April/May 1990, p. 58-64.
  721.  
  722. The U.S. DoD's Federal-Standard-1015/NATO-STANAG-4198 based 2400 bps
  723. linear prediction coder version 53 (LPC-10e v53) Fortran or C simulation
  724. source codes are available on a limited basis upon written request to:
  725.  
  726.     Tom Tremain
  727.     Department of Defense
  728.     Ft. Meade, MD  20755-6000
  729.     USA
  730.  
  731. The U.S. Federal Standard 1015 (NATO STANAG 4198) is described in:
  732. Thomas E. Tremain, "The Government Standard Linear Predictive Coding
  733. Algorithm:  LPC-10," Speech Technology Magazine, April 1982, p. 40-49.
  734.  
  735. Copies of the official standards FS 1015 and FS 1016 are available for
  736. US $2.50 each from:
  737.  
  738.     GSA Rm 6654
  739.     7th & D St SW
  740.     Washington, D.C.  20407
  741.     1 (202) 708-9205
  742.  
  743.  
  744. Realtime DSP code for FS-1015 and FS-1016 is sold by several vendors,
  745. including:
  746.  
  747.     John DellaMorte
  748.     DSP Software Engineering
  749.     165 Middlesex Tpk, Suite 206
  750.     Bedford, MA  01730
  751.     1-617-275-3733
  752.     1-617-275-4323 (fax)
  753.     dspse.bedford@channel1.com
  754.  
  755. and
  756.  
  757.     Analogic Systems
  758.     2916 Ramona
  759.     Palo Alto, CA  94306
  760.     (415) 323-3232
  761.  
  762. DSP Software Engineering's FS-1016 code can run on a DSP Research's Tiger 30
  763. or on Intellibit's AE2000 TMS320C31 based 3" by 2.5" card.  See section 4.1
  764. for more on these cards.  Analogic's product runs on a 27 MHz DSP56001 chip.
  765.  
  766. [Most of the above from Joe Campbell, jpcampb@afterlife.ncsc.mil, with
  767. additions from DanFrankowski, drankow@cs.umn.edu, and Ed Hall,
  768. edhall@rand.org]
  769.  
  770. =======================================================================
  771. Q2.5: What is ADPCM?  Where can I get source for it?
  772.  
  773. ADPCM stands for Adaptive Delta Pulse Code Modulation.  It is a
  774. standard for speech compression and decompression.  It takes 16-bit
  775. linear PCM samples samples and converts them to 4-bit samples, so the
  776. compression rate is 4x.
  777.  
  778. There is public domain C code available via anonymous ftp at
  779. ftp.cwi.nl in /pub/adpcm.shar written by Jack Jansen (email
  780. Jack.Jansen@cwi.nl).  It is very programmer-friendly.  The ADPCM code
  781. used is the Intel/DVI ADPCM code which is being recommended by the IMA
  782. Digital Audio Technical Working Group.  It allows the following calls:
  783.  
  784. adpcm_coder(short inbuf[], char outbuf[], int nsample,
  785.         struct adpcm_state *state);
  786. adpcm_decoder(char inbuf[], short outbuf[], int nsample,
  787.         struct adpcm_state *state);
  788.  
  789. The routines have been tested on an SGI Indigo running Irix 4.0.2 and
  790. on a Sparcstation 1+ running SunOS 4.1.1.  On a Sun, the code will
  791. compress at 250Ksample/sec and decompress at 300Ksample/sec.  On an
  792. SGI, the compressor runs at 350Ksample/sec and the decompressor at
  793. 700Ksample/sec.
  794.  
  795. Note that this is NOT a CCITT G722 coder.   The CCITT ADPCM standard is
  796. much more complicated, probably resulting in better quality sound but
  797. also in much more computational overhead.
  798.  
  799. [From Dan Frankowski, drankow@cs.umn.edu; Jack Jansen, Jack.Jansen@cwi.nl]
  800.  
  801. =======================================================================
  802.  
  803. Q2.4: How does pitch perception work, and how do I implement it on my DSP chip?
  804.  
  805. Pitch is officially defined as "That attribute of auditory sensation
  806. in terms of which sounds may be ordered on a musical scale."  Several
  807. good examples illustrating the subtleties of pitch perception are
  808. included in the "Auditory Demonstrations CD" which is available from
  809. the Acoustical Society of America, Woodbury, NY 10797 for $20.
  810.  
  811. A good general reference about the psychology of pitch perception is
  812. the book:
  813.  
  814.     B.C.J. Moore, "An Introduction to the Psychology of Hearing",
  815.     Academic Press, London, 1989.
  816.  
  817. This book is available in paperback and makes a good desk reference.
  818.  
  819. An algorithm implementation that matches a large body of psychoacoustical
  820. work, but which is computationally very intensive, is presented in the paper:
  821.  
  822.     Malcolm Slaney and Richard Lyon, "A Perceptual Pitch Detector," 
  823.     Proceedings of the International Conference of Acoustics, Speech, 
  824.     and Signal Processing, 1990, Albuquerque, New Mexico.
  825.  
  826. The definitive papers describing the use of such a perceptual pitch
  827. detector as applied to the classical pitch literature is in:
  828.  
  829.     Ray Meddis and M. J. Hewitt. "Virtual pitch and phase
  830.         sensitivity of a computer model of the auditory periphery. "
  831.         Journal of the Acoustical Society of America 89 (6 1991): 2866-2682.
  832.         and 2883-2894.
  833.  
  834. The current work that argues for a pure spectral method starts with the work
  835. of Goldstein:
  836.  
  837.     J. Goldstein,  "An optimum processor theory for the 
  838.     central formation of the pitch of complex tones," Journal
  839.     of the Acoustical Society of America 54, 1496-1516, 1973.
  840.  
  841. Two approaches are worth considering if something approximating pitch
  842. is appropriate.  The people at IRCAM have proposed a harmonic analysis
  843. approach that can be implemented on a DSP
  844.  
  845.     Boris Doval and Xavier Rodet, "Estimation of Fundamental Frequency
  846.     of Musical Sound Signals," Proceedings of the 1991 International
  847.     Conference on Acoustics, Speech, and Signal Processing, Toronto,
  848.     Volume 5, pp. 3657-3660.
  849.  
  850. The classic paper for time domain (peak picking) pitch algorithms is:
  851.  
  852.     B. Gold and L. Rabiner, "Parallel processing techniques for estimating
  853.     pitch periods of speech in the time domain," Journal of the Acoustical
  854.     Society of America, 46, pp 441-448, 1969.
  855.  
  856. Finally, a word of caution: Pitch is not single-valued.  We can hear a
  857. sound and match it to several different pitches.  Imagine the number
  858. of instruments in an orchestra, each with its own pitch.  Even a
  859. single sound can have more than one pitch.  See for example
  860. Demonstration 27 from the ASA Auditory Demonstrations CD.
  861.  
  862. [The above from Malcolm Slaney, Apple Computer, and John Lazzaro,
  863. U.C. Berkeley.]
  864.  
  865. =======================================================================
  866.  
  867. Q2.5: What standards are there for digital audio?  What is AES/EBU?
  868.       What is S/P-DIF?
  869.  
  870. The "AES/EBU" (Audio Engineering Society / European Broadcast Union)
  871. digital audio standard is probably the most popular digital audio
  872. standard today.  Most consumer and professional digital audio devices
  873. (CD players, DAT decks, etc.) that feature digital audio I/O support
  874. AES/EBU.
  875.  
  876. AES/EBU is a bit-serial communications protocol for transmitting
  877. digital audio data through a single transmission line.  It provides two
  878. channels of audio data (up to 24 bits per sample), a method for
  879. communication control and status information ("channel status bits"),
  880. and some error detection capabilities.  Clocking information (i.e.,
  881. sample rate) is derived from the AES/EBU bit stream, and is thus
  882. controlled by the transmitter.  The standard mandates use of 32 kHz,
  883. 44.1 kHz, or 48 kHz sample rates, but some interfaces can be made to
  884. work at other sample rates.
  885.  
  886. AES/EBU provides both "professional" and "consumer" modes.  The big
  887. difference is in the format of the channel status bits mentioned above.
  888. The professional mode bits include alphanumeric channel origin and
  889. destination data, time of day codes, sample number codes, word length,
  890. and other goodies.  The consumer mode bits have much less information,
  891. but do include information on copy protection (naturally).  Additionally,
  892. the standard provides for "user data", which is a bit stream containing
  893. user-defined (i.e., manufacturer-defined) data.  According to Tim
  894. Channon, "CD user data is almost raq CD subcode; DAT is StartID and
  895. SkipID.  In progfessional mode, there is an SDLC protocol or, if DAT,
  896. it may be the same as consumer mode."
  897.  
  898. There physical connection media are commonly used with AES/EBU:
  899. balanced (differential), using two wires and shield in three-wire microphone
  900. cable with XLR connectors; unbalanced (single-ended), using audio coax cable
  901. with RCA jacks; and optical (via fiber optics).
  902.  
  903. "S/P-DIF" (Sony/Philips Digital Interface Format) typically refers to
  904. AES/EBU operated in consumer mode over unbalanced RCA cable.  Note
  905. that S/P-DIF and AES/EBU mean different things depending on how much
  906. of a purist you are in the digital audio world; see the Finger article
  907. below.
  908.  
  909. References:
  910.  
  911. Finger, Robert, "AES3-199X: The Revised Two Channel Digital Audio
  912. Interface (DRAFT)", presented at the 91st Convention of the Audio
  913. Engineering Society, October 4-8, 1991.  Reprints: AES, 60 East 42nd
  914. St., New York, NY, 10165.
  915.  
  916. [The above from Phil Lapsley, phil@ohm.Berkeley.EDU, and Tim Channon,
  917. tchannon@black.demon.co.uk]
  918.  
  919. =============================================================================
  920.  
  921. Q2.6: What is mu-law encoding?  Where can I get source for it?
  922.  
  923. Mu-law (also "u-law") encoding is a form of logarithmic quantization
  924. or companding.  It's based on the observation that many signals are
  925. statistically more likely to be near a low signal level than a high
  926. signal level.  Therefore, it makes more sense to have more quantization
  927. points near a low level than a high level.  In a typical mu-law system,
  928. linear samples of 14 to 16 bits are companded to 8 bits.  Most telephone
  929. quality codecs (including the Sparcstation's audio codec) use mu-law
  930. encoded samples.
  931.  
  932. Desktop Sparc machines come with routines to convert between linear and
  933. mu-law samples.  On a desktop Sparc, see the man page for audio_ulaw2linear
  934. in /usr/demo/SOUND/man.
  935.  
  936. Craig Reese posted the source of similar routines to comp.dsp in August '92.
  937.  
  938. References:
  939.  
  940. CCITT Recommendation G.711 (very difficult to follow).
  941.  
  942. Michael Villeret, et. al, "A New Digital Technique for Implementation
  943. of Any Continuous PCM Companding Law,", IEEE Int. Conf. on Communications,
  944. 1973, vol. 1, pp. 11.12-11.17.
  945.  
  946. MIL-STD-188-113, "Interoperability and Performance Standards
  947. for Analog-to-Digital Conversion Techniques," 17 February 1987.
  948.  
  949. "TI Digital Signal Processing Applications with the TMS320 Family",
  950. pp. 169-198.
  951.  
  952. [From Joe Campbell; Craig Reese, cfreese@super.org; Sepehr Mehrabanzad,
  953. sepehr@falstaff.dev.cdx.mot.com]
  954.  
  955. =============================================================================
  956.  
  957. Q2.7: How can I do CD <-> DAT sample rate conversion?
  958.  
  959. CD players use a 44.1 kHz sample rate, whereas DAT uses a 48 kHz sample rate.
  960. This means that you must do sample rate conversion before you can get data
  961. from a CD player directly into a DAT deck.
  962.  
  963. [From Ed Hall, edhall@rand.org:]
  964.  
  965. For a start, look at "Multirate Digital Signal Processing" by Crochiere
  966. and Rabiner (see FAQ section 1.1).
  967.  
  968. Almost any technique for producing good digital low-pass filters will be
  969. adaptable to sample-rate conversion. 44.1:48 and vice-versa is pretty
  970. hairy, though, because the lowest whole-number ratio is 147:160.  To do
  971. all that in one go would require a FIR with thousands of coefficients,
  972. of which only 1/147th or 1/160th are used for each sample--the real
  973. problem is memory, not CPU for most DSP chips.  You could chain several
  974. interpolators and decimators, as suggested by factoring the ratio into
  975. 3*7*7:2*2*2*2*2*5.  This adds complexity, but reduces the number of
  976. coefficients required by a considerable amount.
  977.  
  978. In any case, your local DSP guru will probably be able to suggest a good
  979. program for designing digital filters (this is a good general question
  980. for the net, anyway).  This is one case where going beyond the simpler
  981. windowed-sinc-based approaches might pay off (and I'm afraid I can't
  982. recommend any readily available programs myself).
  983.  
  984. =============================================================================
  985.  
  986. 3. Programmable DSP chips and software.
  987.  
  988. This section deals with programmable DSP chips and their software.
  989.  
  990. Q3.1: What are the available DSP chips and chip architectures?
  991.  
  992. { This is based on a woefully inadequate databook collection.  Anyone want
  993.   to add to this list?  Manufacturers want to submit anything? }
  994.  
  995. The "big four" programmable DSP chip manufacturers are Texas Instruments,
  996. with the TMS320 series of chips; Motorola, with the DSP56000 and DSP96000
  997. series; AT&T, with the DSP16 and DSP32 series; and Analog Devices, with
  998. the ADSP2100 series.  A good overview of prorammable DSP chips is published
  999. periodically in EDN magazine.  The most recent version is from Sep. 17, 1992,
  1000. pp. 90-141.
  1001.  
  1002. Here's a less ambitious chip breakdown by manufacturer:
  1003.  
  1004. -------------------------------------
  1005.  
  1006. Texas Instuments:
  1007.  
  1008. TMS320C1x: family of low cost fixed-point DSP's; 16 bit data, 32 bit
  1009. registers; Various RAM and ROM configurations; 16 bit I/O bus, serial ports.
  1010.  
  1011. TMS320C25: 50MHz fixed-point DSP; 16 bit data, 32 bit registers;
  1012. 12.5 MIPS @ 50MHz.
  1013.  
  1014. TMS320C30: 27/33/40 MHz floating point DSP; 32 bit floating point,
  1015. 24 bit fixed point data, 40 bit  registers; DMA  controller; dual serial
  1016. ports; some support for multi-processor arrays.
  1017.  
  1018. TMS320C31: version of C30 minus peripheral bus, one serial port, and the 4Kx32
  1019. internal ROM.  ~$20, 132 pin PQFP.
  1020.  
  1021. TMS320C40: 40/50 MHz floating point DSP; extensive parallel processing
  1022. support through 6 buffered byte-wide 20 Mb/s links and 6 channel DMA; cache.
  1023.  
  1024. TMS320C50: enhanced TMS320C25 (double throughput); low overhead looping;
  1025. 10 Kwords SRAM on chip.
  1026.  
  1027. -------------------------------------
  1028.  
  1029. Motorola:
  1030.  
  1031. DSP56001: 20.5, 27, or 32 MHz fixed point DSP.  24 bit data bus, 16 bit
  1032. address bus, 56 bit accumulators (2), host interface port, serial ports (2),
  1033. general purpose I/O pins, timer.  Harvard architecture.  512 words program
  1034. RAM, 512 words data RAM on chip.
  1035.  
  1036. DSP56000: Mask-programmed version of DSP56001.
  1037.  
  1038. DSP56002: DSP56001 with On-Chip Emulation (OnCE) debug port and clock PLL.
  1039. Also has a four cycle double precision multiply and support for block
  1040. floating point.  Available up to 40 MHz.
  1041.  
  1042. DSP56156: 40, 50, or 60 MHz fixed point DSP; 16 bit data bus, 40 bit
  1043. accumulators (2), host interface port, serial ports (2), timer, OnCE
  1044. debug port, clock PLL, 14 bit sigma-delta voice band CODEC, 2K words
  1045. program RAM, 2K words data RAM on chip.
  1046.  
  1047. DSP96002: IEEE format floating point DSP; 32 bit data and address bus, two
  1048. complete external buses; Harvard architecture.
  1049.  
  1050. -------------------------------------
  1051.  
  1052. AT&T:
  1053.  
  1054. DSP32C: floating point DSP; 32 bit floating point, 16/24 bit fixed point data.
  1055.  
  1056. DSP3210: floating point DSP; 32 bit floating point, 16/32 bit fixed point data;
  1057. 32 bit address and data bus, serial port.
  1058.  
  1059. [and others; we don't have a good list, unfortunately].
  1060.  
  1061. -------------------------------------
  1062.  
  1063. Analog Devices:
  1064.  
  1065. ADSP2100: 32 and 50Mhz fixed point DSP (8 MIPS, 12.5MIPS).  16 bit registers
  1066. except for multiplyer-accumulate register which is 40 bits.  No on chip memory
  1067. except for a 16 word instruction cache. 
  1068.  
  1069. ADSP2101: Derived from ADSP2100, 16 bit registers except for the multiplier
  1070. accumulator which is 40 bits. 2Kx24 instruction/data ram in program memory
  1071. space, 1Kx16 data ram in data memory space.  Adds memory, timer, serial ports,
  1072. etc. to the 2100.  Fastest speed grade in production is 16.6 MHz (16.6MIPS).
  1073.  
  1074. ADSP2102: Ram/rom version of 2101; user selects how much of the 2kx24 program
  1075. memory is mask rom.
  1076.  
  1077. ADSP2103: 3V version of the 2101.
  1078.  
  1079. ADSP2105: 10Mhz fixed point DSP with 1 serial port, timer and 1kx24
  1080. instruction/data ram in program memory space, and 512 word data ram
  1081. in data memory space. This processor sells for US $9.90 in any quantity.
  1082.  
  1083. ADSP2111: adds a 8/16bit host interface port [to 2101?].
  1084.  
  1085. ADSP21msp50: ADSP2111 with an on chip a/d and d/a interface and additional
  1086. low power modes.
  1087.  
  1088. ADSP2161: has 8Kx24 mask rom.
  1089.  
  1090. DSP21020: 20/25/33 MHz floating-point DSP;  Supports 32-bit fixed point, IEEE 
  1091. format 32-bit floating point, and 40-bit floating point;  40-bit registers plus two 80-bit fixed-point multiply-accumulators;  Harvard arch. with 32 word 
  1092. instruction cache allows two data accesses in a single cycle;  IEEE 1149.1 JTAG boundry scan; 33.3 MIPS @ 33.3 MHz.
  1093.  
  1094. ADSP21010: Slower and cheaper version of '020 (16 MHz).  Limited to 32-bit
  1095. fixed and floating point.
  1096.  
  1097. All of the processors (except the 2100) use a 1X instruction clock and use an
  1098. on chip PLL to generate an internal 4X clock.  All processors have an extended
  1099. Harvard architecture which allows two data fetches and an instruction fetch
  1100. every cycle in parallel with an alu or mac operation.  All instructions
  1101. including accessing external memory can complete in 1 cycle.
  1102.  
  1103. [Greg Koker, greg.koker@analog.com]
  1104.  
  1105. =======================================================================
  1106.  
  1107. Q3.2: Software for Motorola DSPs.
  1108.  
  1109. =======================================================================
  1110.  
  1111. Q3.2.1: Where can I get a free assembler for the Motorola DSP56000?
  1112.  
  1113. A free assembler for the Motorola DSP56000 exists, thanks to Quinn
  1114. Jensen, jensenq@qcj.icon.com.  The current version is 1.1, and
  1115. it is posted to alt.sources, so look for it on mirrors of that
  1116. newsgroup (like wuarchive.wustl.edu).
  1117.  
  1118. =======================================================================
  1119.  
  1120. Q3.2.2: Where can I get a free C compiler for the Motorola DSP56000?
  1121.  
  1122. There are two separate compiler sources for the Motorola DSP56000.  One
  1123. is the port of gcc 1.40 done by Andrew Sterian (asterian@eecs.umich.edu) and
  1124. the other is a port of gcc 1.37.1 done by Motorola and returned to the
  1125. FSF.  Andrew's port has bowed to Motorola's version.  Both may be
  1126. portable to gcc2.x.x with some effort required.  Neither of these comes
  1127. with an assembler, but you can get a free DSP56000 assembler elsewhere
  1128. (see Q3.2.1 above).
  1129.  
  1130. The Motorola gcc source is available for FTP from:
  1131.  
  1132.     nic.funet.fi        ~pub/ham/dsp/dsp56k-tools/dsp56k-gcc.tar.Z
  1133.     evans.ee.adfa.oz.au    pub/micros/56k/g56k.tar.Z
  1134.  
  1135. From Andrew Sterian, asterian@eecs.umich.edu:
  1136.  
  1137. My DSP56156 port is still the only DSP56156 compiler around and I have
  1138. just released an updated version of it.  Both this compiler and the
  1139. previous incarnation are archived on wuarchive.wustl.edu (in the
  1140. usenet/alt.sources directory) amongst other places.
  1141.  
  1142. =======================================================================
  1143.  
  1144. Q3.2.3: Where can I get algorithms and libraries for Motorola DSPs?
  1145.     What is the number for the Motorola DSP BBS?
  1146.  
  1147. Motorola runs "Dr. Bub", a bulletin board for DSPs containing source code
  1148. for various libraries and algorithms.  You can call it at (512) 891-3771
  1149. (9600, 4800, 2400, 1200 bps) or (512) 891-3773 (2400/1200/300 bps).
  1150. Format is 8 data bits, no parity, 1 stop bit).  Log in as "guest" to
  1151. browse the system, or you can open an account by entering "new" at the
  1152. account name prompt.  [John Fisher, johnf@dsp.sps.mot.com]
  1153.  
  1154. Alternatively, Dr. BuB is mirrored on the following sites:
  1155.  
  1156. calvin.stanford.edu   (36.14.0.43)     in   /motorola
  1157. bode.ee.ualberta.ca   (129.128.16.96)  in   /pub/dos/motorola
  1158. nic.funet.fi          (128.214.6.100)  in   /pub/misc/motorola
  1159. doc.ic.ac.uk          (146.169.3.7)    in   
  1160. /computing/systems/motorola/digital-signal-processing/dr.bub.sources
  1161.  
  1162. Also try nic.funet.fi in /pub/ham/dsp for a lot of good stuff on 
  1163. communications uses, including some hardware.
  1164.  
  1165. ccrma-ftp.stanford.edu also has a variety of DSP code (much of it NeXT
  1166. specific, see below), including the following for the DSP56000:
  1167.  
  1168. pub/clm.tar.Z        "CLM", a package aimed mainly at composers doing
  1169.             computer music in Common Lisp, but includes a Lisp
  1170.             56000 assembler, debugger, loader, large libraries of
  1171.             DSP56000 routines useful in computer music, and
  1172.             a compiler from a subset of Common Lisp to
  1173.             DSP56000 code.  [bil@ccrma.stanford.edu]
  1174.  
  1175. =======================================================================
  1176.  
  1177. Q3.2.4: Where can I get NeXT-compatible Motorola DSP56001 code?
  1178.  
  1179. Try the following from ccrma-ftp.Stanford.EDU:
  1180.  
  1181. DSP programs for the NeXT platform:
  1182.  
  1183. pub/DSP/resample.tar.Z          Audio sampling-rate conversion and FIR
  1184.                 filter design.
  1185. pub/DSP/ResoLab2.1.tar.Z        Interactive filter instrument; sources now
  1186.                 included, online help.
  1187. pub/DSP/Spectro.Z               Spectrum analysis tool, with source code.
  1188. pub/DSP/WaveFormEditor.tar.Z    Jean Laroche's real-time waveform editor,
  1189.                 with DAJ's additions.
  1190.  
  1191. DSP programming examples for the NeXT platform:
  1192.  
  1193. pub/DSP/dsp_dma_stream.tar.Z    Fast DSP DMA programming example (two-way DMA).
  1194. pub/DSP/JeanLaroche.tar.Z       Low-level sound and DSP programming examples
  1195.                 and docs.
  1196.  
  1197. [bil@ccrma.Stanford.EDU]
  1198.  
  1199. =======================================================================
  1200.  
  1201. Q3.3: Software for Texas Instruments DSPs.
  1202.  
  1203. =======================================================================
  1204.  
  1205. Q3.3.1: Where can I get algorithms or libraries for TI DSPs?
  1206.         What is the number for the TI DSP BBS?
  1207.  
  1208. nic.funet.fi has some old, apparently public domain, assembler and
  1209. related tools from TI for the TMS320 family.  [Antti-Pekka Virtanen,
  1210. antsu@utu.fu]
  1211.  
  1212. The TI DSP bulletin board is at (713) 274-2323 (300, 1200, 2400, or 9600 bps;
  1213. 8 data, 1 stop, no parity).
  1214.  
  1215. evans.ee.adfa.oz.au has a mirror of the TI DSP bulletin board in
  1216. "mirrors/tibbs".  See the "00README" file at the top of the
  1217. directory tree for info.  Please restrict FTP session to outside of
  1218. 8 am to 6 pm local time (10 pm to 8 am GMT).  [Brad Hards,
  1219. hards4@ee.adfa.oz.au]
  1220.  
  1221. { If anyone knows of any other sources for TI DSP software, please let
  1222. us know at comp-dsp-faq@ohm.Berkeley.EDU.  Thanks! }
  1223.  
  1224. =======================================================================
  1225.  
  1226. Q3.3.2: Where can I get a free C compiler for the TI TMS320C30?
  1227.  
  1228. Sonitech (see vendors list) has a gcc based TMS320C30 C compiler
  1229. that was originally done Computer Motion.  Sonitech sells it
  1230. for $995, but under the terms of the Gnu Public License, other
  1231. people can then give it away.  While we haven't heard of any
  1232. ftp sites yet, there are bound to be some soon.
  1233.  
  1234. =======================================================================
  1235.  
  1236. Q3.4: Software for Analog Devices DSPs.
  1237.  
  1238. =======================================================================
  1239.  
  1240. Q3.4.1: Where can I get algorithms or libraries for Analog Devices DSPs?
  1241.         What is the number for the Analog Devices DSP BBS?
  1242.  
  1243. The number for the Analog Devices DSP BBS is (617) 461-4258 (300, 1200,
  1244. 2400, 9600, 14400 bps), 8N1.
  1245.  
  1246. [Greg Koker, greg.koker@analog.com]
  1247.  
  1248. { If anyone knows of other sources for Analog Devices DSP software,
  1249. please let us know at comp-dsp-faq@ohm.Berkeley.EDU.  Thanks! }
  1250.  
  1251. =======================================================================
  1252.  
  1253. Questions, comments, or submissions for this FAQ should be mailed to
  1254. comp-dsp-faq@ohm.Berkeley.EDU, ...!ucbvax!ohm!comp-dsp-faq.  Thanks!
  1255.